It is, of course, generally known to utilize hybrid data storage systems in computers. Specifically, it is common to employ the usage of hard disk drives (“HDD”) for storage of data. A hard drive consists of a spinning disk coated with magnetic material that may be manipulated to store data thereon. Data may further be read from the disk, typically via magnetic heads on actuators that may move to retrieve any data at any location of the disk. Hard drives are extremely advantageous due to their relatively low cost, simplicity, high storage capacity and relatively fast read/write capabilities.
Specifically, today's hard drives can support data rates in excess of 150 MB/s but are limited in their inputs/outputs (I/O) per second. Moreover, a hard drive can perform large data read and write functions at a data rate near its peak. For example, loading a video, music file, photo, video capture, backup image or other like large, contiguous file, may be read and written to a hard drive at a rate near the peak of the drive.
However, hard drives suffer certain disadvantages, including limitations in their storage capacity, size and the speed of their read/write capabilities. While capacity of hard drives is increasing, the size of disks within the hard drives generally limits the capacities. Specifically, size is often limited because reducing the size of the disks directly impacts the area of recordable space on the disks. Moreover, disks are limited in read/write capabilities by the speed of rotation of the disks. Typical hard drives rotate at 7200 rpm, which typically limits the speed of reading data from and writing data to the disks. Of course, disks may rotate at higher speeds, but this may also increase the cost of production. Therefore, it is difficult to increase capacity of hard drives while decreasing size and it is also difficult to increase speed without increasing cost.
More specifically, a hard drive can perform small read/write functions at data rates of only up to its maximum I/O rates. With today's hard drives typically able to perform less than 500 I/Os per second at best, this results in data rates of about 2 MB/s for functions such as database Read and Writes, memory paging functions small file calls that applications may make, processor/operating system caching functions, small file transfers, and other like functions. While the hard drive I/O rates have improved over the years, the rate of improvement is limited by the mechanical nature of the hard drive with respect to rotational speed, as previously noted, head travel distance, and media density.
The main competition for providing storage space in a computing system is a solid state drive (“SSD”). An SSD is a data storage device that uses integrated circuit assemblies as memory to store data persistently. SSD technology uses electronic interfaces compatible with traditional block input/output (I/O) hard disk drive, but do not employ any moving mechanical components, which distinguish them from traditional magnetic disks such as HDDs. Compared with electromechanical disks, SSDs are typically less susceptible to physical shock, are much quieter, and have lower access time and latency. However, while the price of SSDs has continued to decline, SSDs are still presently about 10 times more expensive per unit of storage than HDDs.
More specifically, an SSD may maintain the same operations as an HDD at a far greater I/O rate capability, typically sustaining data rates up to 100 times faster than the same on an HDD. Moreover, SSDs typically read and write at their peak data rates, but the limiting factor for SSDs tends to be the source generating the data, or the function of the data utilized from the drive.
Many modern computer systems utilize a hybrid storage solution, typically using SDDs and other types of storage drives, typically HDDs, together to achieve many of the benefits of SDDs, while keeping costs relatively low in comparison to using only SDDs for data storage. However, it is often difficult to efficiently allocate the data to one or the other of the drives in a hybrid storage system. In many cases, it is far better to allocate certain data to either the SSD or to the other drive, such as an HDD, depending on the type of data, the source of the data, or the functionality of the data.
Specifically, data is typically cached first to an SSD and then allocated to an HDD, even if the source of the data is the limiting factor. For example, copying an image from a DVD, CD, or a Blu-Ray to a computer via USB3.0/2.0, even with the fastest optical drives, is well below the data rate capability of a either an HDD or a SSD. However, in typical hybrid storage systems, the data is still written to the SSD first and then transferred to the HDD.
Moreover, in hybrid storage solutions, data may typically be written to an SSD on a “most-used” basis. For example, playing the same video file over and over again typically results in the that file to be cached on the SSD in a hybrid system, even though there is typically no real-world performance benefit for that file to be in the SSD space.
Still further, while SSDs may support nearly unlimited reads, long-term reliability is limited by the number of writes that are performed thereon. Thus, typical hybrid systems may require relatively frequent replacement of SSDs due to overuse of writing data thereto, especially when not needed in a particular data transfer. And as hard drives become faster, utilizing hard drive capability over SSD capability may allow further extending of SSD lifespans, as more and more write functions may be allocated directly to the HDDs instead of to SSDs in a hybrid storage system.
A need exists, therefore, for systems and methods for managing storage space in hybrid data storage systems. Specifically, a need exists for systems and methods for efficiently allocating data between a solid state drive and a second drive, such as a hard disk drive.
Moreover, a need exists for systems and methods to choose between storage on a SSD drive and a second drive, such as an HDD, based on factors that may increase the speed of data transfer or, if speed is limited by source, allocate data to storage in such a way as to preserve higher capable drives for suitable data. In addition, a need exists for systems and methods that select storage between an SSD and a second drive, such as an HDD, based on data type, data source and/or data functionality.
Further, a need exists for systems and methods allowing users to determine the desired allocation of data between an SSD and a second drive, such as an HDD, in a hybrid storage system. Still further, a need exists for systems and methods that aid in extending usable lifespan of hybrid storage systems by minimizing writing to SSDs.